package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.SelectEmpVo;
import com.zb.entity.SelectVo;
import com.zb.entity.ZjWorkClientStrategyEmp;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 工单客服分派策略人员表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-09-27
 */
public interface ZjWorkClientStrategyEmpService extends IService<ZjWorkClientStrategyEmp> {

    /**
     * 保存客服/客服组
     * @param custAccId 商家ID
     * @param workClientStrategyId 工单客服分派策略表ID
     * @param serviceIds 客服ID/客服组ID
     */
    void save(Long custAccId, Long workClientStrategyId, List<Long> serviceIds);

    /**
     * 根据分配客服策略ID查询客服
     * @param workClientStrategyIds 工单客服分派策略表ID
     * @return
     */
    List<SelectEmpVo> getServiceEmpByWorkClientStrategyIds(List<Long> workClientStrategyIds);

    /**
     * 根据分配客服策略ID查询客服组
     * @param workClientStrategyIds 工单客服分派策略表ID
     * @return
     */
    List<SelectEmpVo> getServiceGroupByWorkClientStrategyIds(List<Long> workClientStrategyIds);

    /**
     * 根据分配客服策略ID获取人员类型关联ID
     * @param workClientStrategyId 分配客服策略ID
     * @return
     */
    List<ZjWorkClientStrategyEmp> getValIdByWorkClientStrategyId(Long workClientStrategyId);

    /**
     * 根据分配客服策略ID & 人员类型获取客服ID
     * @param empType 人员类型：1-客服，2-客服组
     * @param workClientStrategyId
     * @return
     */
    List<Long> getEmpIdByEmpTypeAndWorkClientStrategyId(Integer empType, Long workClientStrategyId);

    /**
     * 根据客服组ID获取关联的客服组ID
     * @param custAccId 商家ID
     * @param workTeamIds 客服组ID
     * @return
     */
    List<Long> getWorkTeamIdByWorkTeamIds(Long custAccId, List<Long> workTeamIds);

}
